import request from '@/config/axios'

// 请求参数
export interface TplDatasetSaveReqVO {
  id?: number | undefined // ID,示例值(18740)，数据类型为 integer(int64)
  dirId?: number // 目录ID,示例值(19851)，数据类型为 integer(int64)，非必须
  datasetType: number // 数据集类型 1sql 2api,示例值(2)，数据类型为 integer(int32)
  datasetName: string // 数据集名称,示例值(赵六)，数据类型为 string
  tplId: number // 模板id,示例值(7725)，数据类型为 integer(int64)
  datasourceId: number // 数据源id,示例值(29387)，数据类型为 integer(int64)
  tplSql?: string // sql语句，数据类型为 string，非必须
  tplParam?: string // 参数，数据类型为 string，非必须
  sqlType?: number // sql类型 1标准sql 2存储过程,示例值(2)，数据类型为 integer(int32)，非必须
  inParam?: string // 存储过程入参，数据类型为 string，非必须
  outParam?: string // 存储过程出参，数据类型为 string，非必须
  isPagination?: number // 是否分页 1是 2否，数据类型为 integer(int32)，非必须
  pageCount?: number // 每页显示条数,示例值(21209)，数据类型为 integer(int32)，非必须
  type?: number // 类型 1报表 2大屏,示例值(1)，数据类型为 integer(int32)，非必须
  currentPageAttr?: string // 当前页码属性，数据类型为 string，非必须
  pageCountAttr?: string // 每页显示条数属性，数据类型为 string，非必须
  totalAttr?: string // 数据总条数属性，数据类型为 string，非必须
  subParamAttrs?: string // 主表传递给子表的参数属性，数据类型为 string，非必须
  isCommon?: number // 是否公共数据集 1是 2否，数据类型为 integer(int32)，非必须
  commonType?: number // 类型 1合同报表，数据类型为 integer(int32)，非必须
  isConvert?: number // 是否行列转置 1是 2否，数据类型为 integer(int32)，非必须
  headerName?: string // 行转列字段，数据类型为 string，非必须
  valueField?: string // 行转列值，数据类型为 string，非必须
  fixedColumn?: string // 固定列，数据类型为 string，非必须
}

// 数据集列
export interface TplDatasetListReqVO {
  id?: number | undefined // ID, 示例值(18740)，数据类型为 integer(int64)，非必须
  dirId?: number // 目录ID, 示例值(19851)，数据类型为 integer(int64)，非必须
  datasetType?: number // 数据集类型 1sql 2api, 示例值(2)，数据类型为 integer(int32)，非必须
  datasetName?: string // 数据集名称, 示例值(赵六)，数据类型为 string，非必须
  tplId?: number // 模板id, 示例值(7725)，数据类型为 integer(int64)，非必须
  datasourceId?: number | undefined // 数据源id, 示例值(29387)，数据类型为 integer(int64)，非必须
  tplSql?: string // sql语句，数据类型为 string，非必须
  tplParam?: string // 参数，数据类型为 string，非必须
  sqlType?: number // sql类型 1标准sql 2存储过程, 示例值(2)，数据类型为 integer(int32)，非必须
  inParam?: string // 存储过程入参，数据类型为 string，非必须
  outParam?: string // 存储过程出参，数据类型为 string，非必须
  isPagination?: number // 是否分页 1是 2否，数据类型为 integer(int32)，非必须
  pageCount?: number // 每页显示条数, 示例值(21209)，数据类型为 integer(int32)，非必须
  type?: number // 类型 1报表 2大屏, 示例值(1)，数据类型为 integer(int32)，非必须
  currentPageAttr?: string // 当前页属性，数据类型为 string，非必须
  pageCountAttr?: string // 每页显示条数属性，数据类型为 string，非必须
  totalAttr?: string // 数据总条数属性，数据类型为 string，非必须
  subParamAttrs?: string // 主表传递给子表的参数属性，数据类型为 string，非必须
  isCommon?: number // 是否公共数据集 1是 2否，数据类型为 integer(int32)，非必须
  commonType?: number // 类型 1合同报表，数据类型为 integer(int32)，非必须
  isConvert?: number // 是否行列转置 1是 2否，数据类型为 integer(int32)，非必须
  headerName?: string // 行转列字段，数据类型为 string，非必须
  valueField?: string // 行转列值，数据类型为 string，非必须
  fixedColumn?: string // 固定列，数据类型为 string，非必须
  columns?: any
}

// 数据源管理
export const DatasetApi = {
  //  获得分页数据
  getPage: async (params: any) => {
    return await request.get({ url: `/ctr/tpl-dataset/page`, params })
  },
  // 查询
  get: async (id: number) => {
    return await request.get({ url: `/ctr/tpl-dataset/get?id=` + id })
  },
  // 新增
  create: async (data: TplDatasetSaveReqVO) => {
    return await request.post({
      url: `/ctr/tpl-dataset/create`,
      data
    })
  },
  // 修改
  update: async (data: TplDatasetSaveReqVO) => {
    return await request.put({
      url: `/ctr/tpl/update`,
      data
    })
  },
  // 删除
  delete: async (id: number) => {
    return await request.delete({ url: `/ctr/tpl-dataset/delete?id=` + id })
  },
  // 批量删除
  deleteList: async (ids: string) => {
    return await request.delete({ url: `/ctr/tpl-dataset/delete-list?ids=` + ids })
  },
  // 查询数据集列
  getDatasetColumns: async (data: TplDatasetListReqVO) => {
    return await request.post({
      url: `/ctr/tpl-dataset/getDatasetColumns`,
      data
    })
  }
}
